I'd like to thank everyone that made suggestions, etc that went into making these interfaces, and Scott Roy for making the IconKit, where much of the design ideas for these classes came from.
Check them out and let me know what you think....
Summary:
Proposal for interfaces for a generic File class.
MiscGraphNode: Represents a node in a directed graph. Keeps track of parents, children
and dependancies. Conforms to IKDependancy (from IconKit)
MiscFile: Represents a path in the filesystem. Very bare-bones right now.
MiscIconFile: Contains everything needed for dragging/dropping MiscFiles. Conforms to
This class represents a node in a directed graph. Anyone familiar with Scott Roy's IconKit will recognize most of the methods this class uses. Since so much of the content (interface and protocols) of this object comes from the IconKit, I would definitely suggest you take a look at it. It can be found on cs.orst.edu in /pub/next/sources/objects.
The object takes care of it's own garbage collection by freeing itself when it no longer has any parents or users (see IKAnnouncer in IconKit). The list of parents is kept only for garbage collection and easy traversal of the graph in both directions.
Announcements (which is a little like delegation) are controlled by the announcer object (which also is part of the IconKit).